/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

京东云VPC
VPC相关API

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef VpcClient_h
#define VpcClient_h


#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKVpc/VpcApiModel.h>

@interface VpcClient : NSObject<JDCloudClient>{
    @private
    NSString* _userAgent;
    NSString* _serviceName;
    NSString* _version;
    }

    @property (strong,readonly,nonatomic) NSString* userAgent;

    @property (strong,readonly,nonatomic) NSString* serviceName;

    @property (strong,readonly,nonatomic) NSString* version;

    @property (strong,nonatomic) NSString* contentType;

    @property (strong,nonatomic) Credential* credential;

    @property (strong,nonatomic) SDKEnvironment* sdkEnvironment;

    @property (strong,nonatomic) NSMutableDictionary* customHeader;

    @property  (strong,nonatomic) NSString* httpRequestProtocol;

    -(void) addCustomerHeaderWithKey:(NSString*) key
    value:(NSString*) value;

    -(id)initWithGlobalConfig;

    -(id)initWithCredential:(Credential*)credential
    sdkEnvironment:(SDKEnvironment*)sdkEnvironment;
    -(id)initWithCredential:(Credential*)credential;
    /**
    deleteElasticIp sync request
    @param deleteElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteElasticIpResponse` the request response data model
    */
    -(NSDictionary*) deleteElasticIpSyncWithRequest:(VpcDeleteElasticIpRequest*) deleteElasticIpRequest;

    -(void)deleteElasticIpAsyncWithRequest:(VpcDeleteElasticIpRequest*) deleteElasticIpRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteElasticIpResponse* _Nullable deleteElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyVpcPeering sync request
    @param modifyVpcPeeringRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyVpcPeeringResponse` the request response data model
    */
    -(NSDictionary*) modifyVpcPeeringSyncWithRequest:(VpcModifyVpcPeeringRequest*) modifyVpcPeeringRequest;

    -(void)modifyVpcPeeringAsyncWithRequest:(VpcModifyVpcPeeringRequest*) modifyVpcPeeringRequest
    completionHandler:(void(^)(int statusCode,VpcModifyVpcPeeringResponse* _Nullable modifyVpcPeeringResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyNetworkAclRules sync request
    @param modifyNetworkAclRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNetworkAclRulesResponse` the request response data model
    */
    -(NSDictionary*) modifyNetworkAclRulesSyncWithRequest:(VpcModifyNetworkAclRulesRequest*) modifyNetworkAclRulesRequest;

    -(void)modifyNetworkAclRulesAsyncWithRequest:(VpcModifyNetworkAclRulesRequest*) modifyNetworkAclRulesRequest
    completionHandler:(void(^)(int statusCode,VpcModifyNetworkAclRulesResponse* _Nullable modifyNetworkAclRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyElasticIp sync request
    @param modifyElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyElasticIpResponse` the request response data model
    */
    -(NSDictionary*) modifyElasticIpSyncWithRequest:(VpcModifyElasticIpRequest*) modifyElasticIpRequest;

    -(void)modifyElasticIpAsyncWithRequest:(VpcModifyElasticIpRequest*) modifyElasticIpRequest
    completionHandler:(void(^)(int statusCode,VpcModifyElasticIpResponse* _Nullable modifyElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteNetworkAcl sync request
    @param deleteNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) deleteNetworkAclSyncWithRequest:(VpcDeleteNetworkAclRequest*) deleteNetworkAclRequest;

    -(void)deleteNetworkAclAsyncWithRequest:(VpcDeleteNetworkAclRequest*) deleteNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteNetworkAclResponse* _Nullable deleteNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteSubnet sync request
    @param deleteSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSubnetResponse` the request response data model
    */
    -(NSDictionary*) deleteSubnetSyncWithRequest:(VpcDeleteSubnetRequest*) deleteSubnetRequest;

    -(void)deleteSubnetAsyncWithRequest:(VpcDeleteSubnetRequest*) deleteSubnetRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteSubnetResponse* _Nullable deleteSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeSubnets sync request
    @param describeSubnetsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetsResponse` the request response data model
    */
    -(NSDictionary*) describeSubnetsSyncWithRequest:(VpcDescribeSubnetsRequest*) describeSubnetsRequest;

    -(void)describeSubnetsAsyncWithRequest:(VpcDescribeSubnetsRequest*) describeSubnetsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeSubnetsResponse* _Nullable describeSubnetsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkInterfaces sync request
    @param describeNetworkInterfacesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkInterfacesResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkInterfacesSyncWithRequest:(VpcDescribeNetworkInterfacesRequest*) describeNetworkInterfacesRequest;

    -(void)describeNetworkInterfacesAsyncWithRequest:(VpcDescribeNetworkInterfacesRequest*) describeNetworkInterfacesRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkInterfacesResponse* _Nullable describeNetworkInterfacesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    removeNetworkSecurityGroupRules sync request
    @param removeNetworkSecurityGroupRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `removeNetworkSecurityGroupRulesResponse` the request response data model
    */
    -(NSDictionary*) removeNetworkSecurityGroupRulesSyncWithRequest:(VpcRemoveNetworkSecurityGroupRulesRequest*) removeNetworkSecurityGroupRulesRequest;

    -(void)removeNetworkSecurityGroupRulesAsyncWithRequest:(VpcRemoveNetworkSecurityGroupRulesRequest*) removeNetworkSecurityGroupRulesRequest
    completionHandler:(void(^)(int statusCode,VpcRemoveNetworkSecurityGroupRulesResponse* _Nullable removeNetworkSecurityGroupRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyNetworkSecurityGroup sync request
    @param modifyNetworkSecurityGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNetworkSecurityGroupResponse` the request response data model
    */
    -(NSDictionary*) modifyNetworkSecurityGroupSyncWithRequest:(VpcModifyNetworkSecurityGroupRequest*) modifyNetworkSecurityGroupRequest;

    -(void)modifyNetworkSecurityGroupAsyncWithRequest:(VpcModifyNetworkSecurityGroupRequest*) modifyNetworkSecurityGroupRequest
    completionHandler:(void(^)(int statusCode,VpcModifyNetworkSecurityGroupResponse* _Nullable modifyNetworkSecurityGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    addNetworkSecurityGroupRules sync request
    @param addNetworkSecurityGroupRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addNetworkSecurityGroupRulesResponse` the request response data model
    */
    -(NSDictionary*) addNetworkSecurityGroupRulesSyncWithRequest:(VpcAddNetworkSecurityGroupRulesRequest*) addNetworkSecurityGroupRulesRequest;

    -(void)addNetworkSecurityGroupRulesAsyncWithRequest:(VpcAddNetworkSecurityGroupRulesRequest*) addNetworkSecurityGroupRulesRequest
    completionHandler:(void(^)(int statusCode,VpcAddNetworkSecurityGroupRulesResponse* _Nullable addNetworkSecurityGroupRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createNetworkAcl sync request
    @param createNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) createNetworkAclSyncWithRequest:(VpcCreateNetworkAclRequest*) createNetworkAclRequest;

    -(void)createNetworkAclAsyncWithRequest:(VpcCreateNetworkAclRequest*) createNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcCreateNetworkAclResponse* _Nullable createNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeQuota sync request
    @param describeQuotaRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeQuotaResponse` the request response data model
    */
    -(NSDictionary*) describeQuotaSyncWithRequest:(VpcDescribeQuotaRequest*) describeQuotaRequest;

    -(void)describeQuotaAsyncWithRequest:(VpcDescribeQuotaRequest*) describeQuotaRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeQuotaResponse* _Nullable describeQuotaResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createRouteTable sync request
    @param createRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createRouteTableResponse` the request response data model
    */
    -(NSDictionary*) createRouteTableSyncWithRequest:(VpcCreateRouteTableRequest*) createRouteTableRequest;

    -(void)createRouteTableAsyncWithRequest:(VpcCreateRouteTableRequest*) createRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcCreateRouteTableResponse* _Nullable createRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeRouteTable sync request
    @param describeRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeRouteTableResponse` the request response data model
    */
    -(NSDictionary*) describeRouteTableSyncWithRequest:(VpcDescribeRouteTableRequest*) describeRouteTableRequest;

    -(void)describeRouteTableAsyncWithRequest:(VpcDescribeRouteTableRequest*) describeRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeRouteTableResponse* _Nullable describeRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteNetworkSecurityGroup sync request
    @param deleteNetworkSecurityGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteNetworkSecurityGroupResponse` the request response data model
    */
    -(NSDictionary*) deleteNetworkSecurityGroupSyncWithRequest:(VpcDeleteNetworkSecurityGroupRequest*) deleteNetworkSecurityGroupRequest;

    -(void)deleteNetworkSecurityGroupAsyncWithRequest:(VpcDeleteNetworkSecurityGroupRequest*) deleteNetworkSecurityGroupRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteNetworkSecurityGroupResponse* _Nullable deleteNetworkSecurityGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpcPeerings sync request
    @param describeVpcPeeringsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcPeeringsResponse` the request response data model
    */
    -(NSDictionary*) describeVpcPeeringsSyncWithRequest:(VpcDescribeVpcPeeringsRequest*) describeVpcPeeringsRequest;

    -(void)describeVpcPeeringsAsyncWithRequest:(VpcDescribeVpcPeeringsRequest*) describeVpcPeeringsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeVpcPeeringsResponse* _Nullable describeVpcPeeringsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteVpc sync request
    @param deleteVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteVpcResponse` the request response data model
    */
    -(NSDictionary*) deleteVpcSyncWithRequest:(VpcDeleteVpcRequest*) deleteVpcRequest;

    -(void)deleteVpcAsyncWithRequest:(VpcDeleteVpcRequest*) deleteVpcRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteVpcResponse* _Nullable deleteVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkAcls sync request
    @param describeNetworkAclsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkAclsResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkAclsSyncWithRequest:(VpcDescribeNetworkAclsRequest*) describeNetworkAclsRequest;

    -(void)describeNetworkAclsAsyncWithRequest:(VpcDescribeNetworkAclsRequest*) describeNetworkAclsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkAclsResponse* _Nullable describeNetworkAclsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeSubnet sync request
    @param describeSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetResponse` the request response data model
    */
    -(NSDictionary*) describeSubnetSyncWithRequest:(VpcDescribeSubnetRequest*) describeSubnetRequest;

    -(void)describeSubnetAsyncWithRequest:(VpcDescribeSubnetRequest*) describeSubnetRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeSubnetResponse* _Nullable describeSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkSecurityGroup sync request
    @param describeNetworkSecurityGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkSecurityGroupResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkSecurityGroupSyncWithRequest:(VpcDescribeNetworkSecurityGroupRequest*) describeNetworkSecurityGroupRequest;

    -(void)describeNetworkSecurityGroupAsyncWithRequest:(VpcDescribeNetworkSecurityGroupRequest*) describeNetworkSecurityGroupRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkSecurityGroupResponse* _Nullable describeNetworkSecurityGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkSecurityGroups sync request
    @param describeNetworkSecurityGroupsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkSecurityGroupsResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkSecurityGroupsSyncWithRequest:(VpcDescribeNetworkSecurityGroupsRequest*) describeNetworkSecurityGroupsRequest;

    -(void)describeNetworkSecurityGroupsAsyncWithRequest:(VpcDescribeNetworkSecurityGroupsRequest*) describeNetworkSecurityGroupsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkSecurityGroupsResponse* _Nullable describeNetworkSecurityGroupsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpc sync request
    @param describeVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcResponse` the request response data model
    */
    -(NSDictionary*) describeVpcSyncWithRequest:(VpcDescribeVpcRequest*) describeVpcRequest;

    -(void)describeVpcAsyncWithRequest:(VpcDescribeVpcRequest*) describeVpcRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeVpcResponse* _Nullable describeVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    disassociateNetworkAcl sync request
    @param disassociateNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) disassociateNetworkAclSyncWithRequest:(VpcDisassociateNetworkAclRequest*) disassociateNetworkAclRequest;

    -(void)disassociateNetworkAclAsyncWithRequest:(VpcDisassociateNetworkAclRequest*) disassociateNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcDisassociateNetworkAclResponse* _Nullable disassociateNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    removeNetworkAclRules sync request
    @param removeNetworkAclRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `removeNetworkAclRulesResponse` the request response data model
    */
    -(NSDictionary*) removeNetworkAclRulesSyncWithRequest:(VpcRemoveNetworkAclRulesRequest*) removeNetworkAclRulesRequest;

    -(void)removeNetworkAclRulesAsyncWithRequest:(VpcRemoveNetworkAclRulesRequest*) removeNetworkAclRulesRequest
    completionHandler:(void(^)(int statusCode,VpcRemoveNetworkAclRulesResponse* _Nullable removeNetworkAclRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    associateRouteTable sync request
    @param associateRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateRouteTableResponse` the request response data model
    */
    -(NSDictionary*) associateRouteTableSyncWithRequest:(VpcAssociateRouteTableRequest*) associateRouteTableRequest;

    -(void)associateRouteTableAsyncWithRequest:(VpcAssociateRouteTableRequest*) associateRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcAssociateRouteTableResponse* _Nullable associateRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpcs sync request
    @param describeVpcsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcsResponse` the request response data model
    */
    -(NSDictionary*) describeVpcsSyncWithRequest:(VpcDescribeVpcsRequest*) describeVpcsRequest;

    -(void)describeVpcsAsyncWithRequest:(VpcDescribeVpcsRequest*) describeVpcsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeVpcsResponse* _Nullable describeVpcsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createNetworkSecurityGroup sync request
    @param createNetworkSecurityGroupRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createNetworkSecurityGroupResponse` the request response data model
    */
    -(NSDictionary*) createNetworkSecurityGroupSyncWithRequest:(VpcCreateNetworkSecurityGroupRequest*) createNetworkSecurityGroupRequest;

    -(void)createNetworkSecurityGroupAsyncWithRequest:(VpcCreateNetworkSecurityGroupRequest*) createNetworkSecurityGroupRequest
    completionHandler:(void(^)(int statusCode,VpcCreateNetworkSecurityGroupResponse* _Nullable createNetworkSecurityGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createSubnet sync request
    @param createSubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSubnetResponse` the request response data model
    */
    -(NSDictionary*) createSubnetSyncWithRequest:(VpcCreateSubnetRequest*) createSubnetRequest;

    -(void)createSubnetAsyncWithRequest:(VpcCreateSubnetRequest*) createSubnetRequest
    completionHandler:(void(^)(int statusCode,VpcCreateSubnetResponse* _Nullable createSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteRouteTable sync request
    @param deleteRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteRouteTableResponse` the request response data model
    */
    -(NSDictionary*) deleteRouteTableSyncWithRequest:(VpcDeleteRouteTableRequest*) deleteRouteTableRequest;

    -(void)deleteRouteTableAsyncWithRequest:(VpcDeleteRouteTableRequest*) deleteRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteRouteTableResponse* _Nullable deleteRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeVpcPeering sync request
    @param describeVpcPeeringRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcPeeringResponse` the request response data model
    */
    -(NSDictionary*) describeVpcPeeringSyncWithRequest:(VpcDescribeVpcPeeringRequest*) describeVpcPeeringRequest;

    -(void)describeVpcPeeringAsyncWithRequest:(VpcDescribeVpcPeeringRequest*) describeVpcPeeringRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeVpcPeeringResponse* _Nullable describeVpcPeeringResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    removeRouteTableRules sync request
    @param removeRouteTableRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `removeRouteTableRulesResponse` the request response data model
    */
    -(NSDictionary*) removeRouteTableRulesSyncWithRequest:(VpcRemoveRouteTableRulesRequest*) removeRouteTableRulesRequest;

    -(void)removeRouteTableRulesAsyncWithRequest:(VpcRemoveRouteTableRulesRequest*) removeRouteTableRulesRequest
    completionHandler:(void(^)(int statusCode,VpcRemoveRouteTableRulesResponse* _Nullable removeRouteTableRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createVpcPeering sync request
    @param createVpcPeeringRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createVpcPeeringResponse` the request response data model
    */
    -(NSDictionary*) createVpcPeeringSyncWithRequest:(VpcCreateVpcPeeringRequest*) createVpcPeeringRequest;

    -(void)createVpcPeeringAsyncWithRequest:(VpcCreateVpcPeeringRequest*) createVpcPeeringRequest
    completionHandler:(void(^)(int statusCode,VpcCreateVpcPeeringResponse* _Nullable createVpcPeeringResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeRouteTables sync request
    @param describeRouteTablesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeRouteTablesResponse` the request response data model
    */
    -(NSDictionary*) describeRouteTablesSyncWithRequest:(VpcDescribeRouteTablesRequest*) describeRouteTablesRequest;

    -(void)describeRouteTablesAsyncWithRequest:(VpcDescribeRouteTablesRequest*) describeRouteTablesRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeRouteTablesResponse* _Nullable describeRouteTablesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    assignSecondaryIps sync request
    @param assignSecondaryIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `assignSecondaryIpsResponse` the request response data model
    */
    -(NSDictionary*) assignSecondaryIpsSyncWithRequest:(VpcAssignSecondaryIpsRequest*) assignSecondaryIpsRequest;

    -(void)assignSecondaryIpsAsyncWithRequest:(VpcAssignSecondaryIpsRequest*) assignSecondaryIpsRequest
    completionHandler:(void(^)(int statusCode,VpcAssignSecondaryIpsResponse* _Nullable assignSecondaryIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyNetworkInterface sync request
    @param modifyNetworkInterfaceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNetworkInterfaceResponse` the request response data model
    */
    -(NSDictionary*) modifyNetworkInterfaceSyncWithRequest:(VpcModifyNetworkInterfaceRequest*) modifyNetworkInterfaceRequest;

    -(void)modifyNetworkInterfaceAsyncWithRequest:(VpcModifyNetworkInterfaceRequest*) modifyNetworkInterfaceRequest
    completionHandler:(void(^)(int statusCode,VpcModifyNetworkInterfaceResponse* _Nullable modifyNetworkInterfaceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyNetworkSecurityGroupRules sync request
    @param modifyNetworkSecurityGroupRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNetworkSecurityGroupRulesResponse` the request response data model
    */
    -(NSDictionary*) modifyNetworkSecurityGroupRulesSyncWithRequest:(VpcModifyNetworkSecurityGroupRulesRequest*) modifyNetworkSecurityGroupRulesRequest;

    -(void)modifyNetworkSecurityGroupRulesAsyncWithRequest:(VpcModifyNetworkSecurityGroupRulesRequest*) modifyNetworkSecurityGroupRulesRequest
    completionHandler:(void(^)(int statusCode,VpcModifyNetworkSecurityGroupRulesResponse* _Nullable modifyNetworkSecurityGroupRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeElasticIps sync request
    @param describeElasticIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpsResponse` the request response data model
    */
    -(NSDictionary*) describeElasticIpsSyncWithRequest:(VpcDescribeElasticIpsRequest*) describeElasticIpsRequest;

    -(void)describeElasticIpsAsyncWithRequest:(VpcDescribeElasticIpsRequest*) describeElasticIpsRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeElasticIpsResponse* _Nullable describeElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkInterface sync request
    @param describeNetworkInterfaceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkInterfaceResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkInterfaceSyncWithRequest:(VpcDescribeNetworkInterfaceRequest*) describeNetworkInterfaceRequest;

    -(void)describeNetworkInterfaceAsyncWithRequest:(VpcDescribeNetworkInterfaceRequest*) describeNetworkInterfaceRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkInterfaceResponse* _Nullable describeNetworkInterfaceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyNetworkAcl sync request
    @param modifyNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) modifyNetworkAclSyncWithRequest:(VpcModifyNetworkAclRequest*) modifyNetworkAclRequest;

    -(void)modifyNetworkAclAsyncWithRequest:(VpcModifyNetworkAclRequest*) modifyNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcModifyNetworkAclResponse* _Nullable modifyNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    disassociateElasticIp sync request
    @param disassociateElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateElasticIpResponse` the request response data model
    */
    -(NSDictionary*) disassociateElasticIpSyncWithRequest:(VpcDisassociateElasticIpRequest*) disassociateElasticIpRequest;

    -(void)disassociateElasticIpAsyncWithRequest:(VpcDisassociateElasticIpRequest*) disassociateElasticIpRequest
    completionHandler:(void(^)(int statusCode,VpcDisassociateElasticIpResponse* _Nullable disassociateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteVpcPeering sync request
    @param deleteVpcPeeringRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteVpcPeeringResponse` the request response data model
    */
    -(NSDictionary*) deleteVpcPeeringSyncWithRequest:(VpcDeleteVpcPeeringRequest*) deleteVpcPeeringRequest;

    -(void)deleteVpcPeeringAsyncWithRequest:(VpcDeleteVpcPeeringRequest*) deleteVpcPeeringRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteVpcPeeringResponse* _Nullable deleteVpcPeeringResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createNetworkInterface sync request
    @param createNetworkInterfaceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createNetworkInterfaceResponse` the request response data model
    */
    -(NSDictionary*) createNetworkInterfaceSyncWithRequest:(VpcCreateNetworkInterfaceRequest*) createNetworkInterfaceRequest;

    -(void)createNetworkInterfaceAsyncWithRequest:(VpcCreateNetworkInterfaceRequest*) createNetworkInterfaceRequest
    completionHandler:(void(^)(int statusCode,VpcCreateNetworkInterfaceResponse* _Nullable createNetworkInterfaceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createVpc sync request
    @param createVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createVpcResponse` the request response data model
    */
    -(NSDictionary*) createVpcSyncWithRequest:(VpcCreateVpcRequest*) createVpcRequest;

    -(void)createVpcAsyncWithRequest:(VpcCreateVpcRequest*) createVpcRequest
    completionHandler:(void(^)(int statusCode,VpcCreateVpcResponse* _Nullable createVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyRouteTableRules sync request
    @param modifyRouteTableRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyRouteTableRulesResponse` the request response data model
    */
    -(NSDictionary*) modifyRouteTableRulesSyncWithRequest:(VpcModifyRouteTableRulesRequest*) modifyRouteTableRulesRequest;

    -(void)modifyRouteTableRulesAsyncWithRequest:(VpcModifyRouteTableRulesRequest*) modifyRouteTableRulesRequest
    completionHandler:(void(^)(int statusCode,VpcModifyRouteTableRulesResponse* _Nullable modifyRouteTableRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    addRouteTableRules sync request
    @param addRouteTableRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addRouteTableRulesResponse` the request response data model
    */
    -(NSDictionary*) addRouteTableRulesSyncWithRequest:(VpcAddRouteTableRulesRequest*) addRouteTableRulesRequest;

    -(void)addRouteTableRulesAsyncWithRequest:(VpcAddRouteTableRulesRequest*) addRouteTableRulesRequest
    completionHandler:(void(^)(int statusCode,VpcAddRouteTableRulesResponse* _Nullable addRouteTableRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyRouteTable sync request
    @param modifyRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyRouteTableResponse` the request response data model
    */
    -(NSDictionary*) modifyRouteTableSyncWithRequest:(VpcModifyRouteTableRequest*) modifyRouteTableRequest;

    -(void)modifyRouteTableAsyncWithRequest:(VpcModifyRouteTableRequest*) modifyRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcModifyRouteTableResponse* _Nullable modifyRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    unassignSecondaryIps sync request
    @param unassignSecondaryIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `unassignSecondaryIpsResponse` the request response data model
    */
    -(NSDictionary*) unassignSecondaryIpsSyncWithRequest:(VpcUnassignSecondaryIpsRequest*) unassignSecondaryIpsRequest;

    -(void)unassignSecondaryIpsAsyncWithRequest:(VpcUnassignSecondaryIpsRequest*) unassignSecondaryIpsRequest
    completionHandler:(void(^)(int statusCode,VpcUnassignSecondaryIpsResponse* _Nullable unassignSecondaryIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeElasticIp sync request
    @param describeElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpResponse` the request response data model
    */
    -(NSDictionary*) describeElasticIpSyncWithRequest:(VpcDescribeElasticIpRequest*) describeElasticIpRequest;

    -(void)describeElasticIpAsyncWithRequest:(VpcDescribeElasticIpRequest*) describeElasticIpRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeElasticIpResponse* _Nullable describeElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    associateElasticIp sync request
    @param associateElasticIpRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateElasticIpResponse` the request response data model
    */
    -(NSDictionary*) associateElasticIpSyncWithRequest:(VpcAssociateElasticIpRequest*) associateElasticIpRequest;

    -(void)associateElasticIpAsyncWithRequest:(VpcAssociateElasticIpRequest*) associateElasticIpRequest
    completionHandler:(void(^)(int statusCode,VpcAssociateElasticIpResponse* _Nullable associateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    disassociateRouteTable sync request
    @param disassociateRouteTableRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateRouteTableResponse` the request response data model
    */
    -(NSDictionary*) disassociateRouteTableSyncWithRequest:(VpcDisassociateRouteTableRequest*) disassociateRouteTableRequest;

    -(void)disassociateRouteTableAsyncWithRequest:(VpcDisassociateRouteTableRequest*) disassociateRouteTableRequest
    completionHandler:(void(^)(int statusCode,VpcDisassociateRouteTableResponse* _Nullable disassociateRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifyVpc sync request
    @param modifyVpcRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyVpcResponse` the request response data model
    */
    -(NSDictionary*) modifyVpcSyncWithRequest:(VpcModifyVpcRequest*) modifyVpcRequest;

    -(void)modifyVpcAsyncWithRequest:(VpcModifyVpcRequest*) modifyVpcRequest
    completionHandler:(void(^)(int statusCode,VpcModifyVpcResponse* _Nullable modifyVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    associateNetworkAcl sync request
    @param associateNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) associateNetworkAclSyncWithRequest:(VpcAssociateNetworkAclRequest*) associateNetworkAclRequest;

    -(void)associateNetworkAclAsyncWithRequest:(VpcAssociateNetworkAclRequest*) associateNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcAssociateNetworkAclResponse* _Nullable associateNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    modifySubnet sync request
    @param modifySubnetRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifySubnetResponse` the request response data model
    */
    -(NSDictionary*) modifySubnetSyncWithRequest:(VpcModifySubnetRequest*) modifySubnetRequest;

    -(void)modifySubnetAsyncWithRequest:(VpcModifySubnetRequest*) modifySubnetRequest
    completionHandler:(void(^)(int statusCode,VpcModifySubnetResponse* _Nullable modifySubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createElasticIps sync request
    @param createElasticIpsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createElasticIpsResponse` the request response data model
    */
    -(NSDictionary*) createElasticIpsSyncWithRequest:(VpcCreateElasticIpsRequest*) createElasticIpsRequest;

    -(void)createElasticIpsAsyncWithRequest:(VpcCreateElasticIpsRequest*) createElasticIpsRequest
    completionHandler:(void(^)(int statusCode,VpcCreateElasticIpsResponse* _Nullable createElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deleteNetworkInterface sync request
    @param deleteNetworkInterfaceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteNetworkInterfaceResponse` the request response data model
    */
    -(NSDictionary*) deleteNetworkInterfaceSyncWithRequest:(VpcDeleteNetworkInterfaceRequest*) deleteNetworkInterfaceRequest;

    -(void)deleteNetworkInterfaceAsyncWithRequest:(VpcDeleteNetworkInterfaceRequest*) deleteNetworkInterfaceRequest
    completionHandler:(void(^)(int statusCode,VpcDeleteNetworkInterfaceResponse* _Nullable deleteNetworkInterfaceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    describeNetworkAcl sync request
    @param describeNetworkAclRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeNetworkAclResponse` the request response data model
    */
    -(NSDictionary*) describeNetworkAclSyncWithRequest:(VpcDescribeNetworkAclRequest*) describeNetworkAclRequest;

    -(void)describeNetworkAclAsyncWithRequest:(VpcDescribeNetworkAclRequest*) describeNetworkAclRequest
    completionHandler:(void(^)(int statusCode,VpcDescribeNetworkAclResponse* _Nullable describeNetworkAclResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    addNetworkAclRules sync request
    @param addNetworkAclRulesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addNetworkAclRulesResponse` the request response data model
    */
    -(NSDictionary*) addNetworkAclRulesSyncWithRequest:(VpcAddNetworkAclRulesRequest*) addNetworkAclRulesRequest;

    -(void)addNetworkAclRulesAsyncWithRequest:(VpcAddNetworkAclRulesRequest*) addNetworkAclRulesRequest
    completionHandler:(void(^)(int statusCode,VpcAddNetworkAclRulesResponse* _Nullable addNetworkAclRulesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    /**
    vpc common sync request
    @param  jdcloudDataRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
    */
    -(NSDictionary*) vpcCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                           url:(NSString*) url
                                        method:(NSString*) method;

    -(void)vpcCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                  url:(NSString*) url
                               method:(NSString*) method
                    completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    @end


    #endif /* VpcClient_h */
